package com.usian.wemedia.client;

import com.usian.common.dtos.PageResult;
import com.usian.common.dtos.ResponseResult;
import com.usian.model.admin.dtos.NewsAuthDto;
import com.usian.model.media.dtos.WmNewsDto;
import com.usian.model.media.dtos.WmNewsResultDTO;
import com.usian.model.media.dtos.WmUserDto;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.*;

import java.util.List;

@FeignClient("leadnews-wemedia")
public interface WemediaFeign {

    /**
     * 保存自媒体用户
     *
     * @param wmUserDto
     * @return
     */
    @PostMapping("/api/v1/wmuser/save")
    public Integer save(@RequestBody WmUserDto wmUserDto);

    /**
     * 按照用户id查询自媒体用户
     * @param apUserId
     * @return
     */
    @GetMapping("/api/v1/wmuser/findByApUserId/{id}")
    public WmUserDto findByApUserId(@PathVariable(name = "id") Integer apUserId);

    /**
     * 根据id查询自媒体文章
     */
    @GetMapping("/api/v1/news/one/{id}")
    public ResponseResult<WmNewsResultDTO> findById(@PathVariable("id")Integer id);

    /**
     * 更新自媒体新闻状态
     * @param wmNewsDto
     * @return
     */
    @PutMapping("/api/v1/news/update")
    void updateWmNews(@RequestBody WmNewsDto wmNewsDto);

    /**
     * 获取需要发布的文章id列表
     * @return
     */
    @GetMapping("/api/v1/news/findPub")
    public List<Integer> findWmNewsIds();

    /**
     * 条件查询自媒体文章列表
     */
    @PostMapping("/api/v1/news/list")
    public PageResult<WmNewsResultDTO> findWmNewsPage(@RequestBody NewsAuthDto dto);
}
